Как сказано здесь https://github.com/eduardoboucas/staticman/issues/243
, staticman через их централизованный API не работает из-за достижения определенных квот
Таким образом, staticman становится приложение гитхаб для расширения этих квот, но до сих пор нет официальной документации для его запуска.
Как это делается?





На основе https://github.com/robinmetral/eaudepoisson
staticman.yml в корне репозитория, смотрите в документации по конфигурации https://staticman.net/docs/configuration
и в репо https://github.com/robinmetral/eaudepoissonВажно, имя свойства staticman.yml — comments:, это свойство — то, что идет в направлении вашего репо. Итак, если вы хотите отправлять комментарии в your_repo/markdown/website_comments, то ваш path в staticman.yml должен быть path: "markdown/website_comments"), но см. ниже, что ваш URL-адрес относится не к структуре папок, а к свойству staticman.yml
/markdown/website_comments в своем репозитории (не обязательно, структура папок будет создана с первым комментарием)form, я сделал это с помощью форм, предоставленных react.semantic-ui.com<Form onSubmit = {onSubmit}>
<Form.Input name = "name" onChange = {changeUserName} placeholder = "what" />
<Form.TextArea name = "message" onChange = {changeuserMessage} placeholder = "what2" />
<Form.Button>Submit</Form.Button>
</Form>
form отправляет data в https://dev.staticman.net/v3/entry/github/{мой пользователь github}/{мой репозиторий}/master/comments/ (измените пользователя github и имя репозитория) const [userName, setUserName] = useState(() => '')
const [userMessage, setUserMessage] = useState(() => '')
const wait = ms => new Promise((r, j) => setTimeout(r, ms))
let changing = 0 // to create a buffer to avoid changing state always, the browser gets slow otherwise
const changeUserName = async (e, { value }) => {
changing++
let prev_changing = changing
await wait(100)
if (prev_changing === changing) setUserName(value)
}
const changeuserMessage = async (e, { value }) => {
changing++
let prev_changing = changing
await wait(100)
if (prev_changing === changing) setUserMessage(value)
}
const onSubmit = async e => {
e.preventDefault()
const formdata = new FormData()
formdata.set('fields[name]', userName)
formdata.set('fields[message]', userMessage)
const json = {}
formdata.forEach((value, prop) => (json[prop] = value))
const formBody = Object.keys(json)
.map(key => encodeURIComponent(key) + '=' + encodeURIComponent(json[key]))
.join('&')
// in the repo, create a folder named 'comments'
const response = await fetch(
'https://dev.staticman.net/v3/entry/github/{my github user}/{my repo}/master/comments/',
{
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: formBody,
}
)
console.info(response)
}
И это все, или, по крайней мере, в моих руках это работает
Служба поддержки приложения предлагает пользователям держаться подальше от каких-либо общедоступных экземпляров и настроить свой собственный экземпляр в github.com/eduardoboucas/staticman/issues/….
Разработчик приложения не рекомендует использовать общедоступный API: github.com/eduardoboucas/staticman/issues/….