修改字数上限
总之需要直接改代码。
编辑app/javascript/mastodon/features/compose/components/compose_form.js
并修改<div className='character-counter__wrapper'><CharacterCounter max={500} text={text} /></div>
部分以及<div className='compose-form__publish-button-wrapper'><Button text={publishText} onClick={this.handleSubmit} disabled={disabled || this.props.is_uploading || length(text) > 500 || (text.length !== 0 && text.trim().length === 0)} block /></div>
部分。这是前端的相关逻辑。
编辑app/validators/status_length_validator.rb
并修改class StatusLengthValidator < ActiveModel::Validator
部分。这是后端逻辑。
MAX_CHARS = 500
下面这部分似乎已经得到官方正式支持不用手动添加了
最后可以修改app/serializers/rest/instance_serializer.rb
来让支持的第三方客户端正确显示修改后的字数。在registrations之后加入max_toot_chars,如下::languages, :registrations, :max_toot_chars,
,然后定义max_toot_chars:
def max_toot_chars
StatusLengthValidator::MAX_CHARS
end
全部修改完后rebuild(docker)或者precompile,重新运行即可。
参考链接
【Reddit】How do I customize character limits on my instance?
Howto raise the character limit?
设置超过一定字数强制CW
在这个commit的基础上修改得来。
首先app/javascript/mastodon/features/compose/components/compose_form.js
可以原样照搬。
app/validators/status_length_validator.rb
中,加入MAX_UNCUT_CHARS = 777
,判断逻辑使用status.errors.add(:text, I18n.t('statuses.over_uncut_character_limit', max: MAX_UNCUT_CHARS)) if too_long_uncut?
,去掉最后的(status)
。下面的几个def块也全都去掉(status)
。最后在locales文件中添加over_uncut_character_limit: Please apply a CW to anything longer than %{max} characters.
,中文也可以对应添加。
Comments NOTHING